import unittest
import ddt
from Common.selenium_tools import get_browser, add_image
from Business.用户名中心.登录 import login
from Common.tools import read_txt
from HTMLReport import logger


@ddt.ddt
class Login_Test(unittest.TestCase):
    """
    1、打开浏览器
    2、打开首页
    3、点击请登录
    4、输入账号
    5、输入密码
    6、点击立即登录
    7、断言
    8、关闭浏览器
    """

    def setUp(self):
        self.driver = get_browser()

    def tearDown(self):
        logger().info("退出浏览器")
        self.driver.quit()

    @ddt.unpack
    @ddt.data(*read_txt("Test_Data/登录测试数据.txt"))
    def test_Login(self, username, password, assert_type):
        add_image(self.driver)
        login(self.driver, username, password)

        if assert_type == '1':
            # 断言
            text = self.driver.find_element_by_xpath('//*[@class="box_1"]//p[1]').text
            self.assertEqual("登录成功", text)

            text = self.driver.find_element_by_xpath('//*[@class="f4_b"]').text
            self.assertEqual(username, text)
        elif assert_type == '2':
            # 断言
            text = self.driver.find_element_by_xpath('//*[@class="box_1"]//p[1]').text
            self.assertEqual("用户名或密码错误", text)
        elif assert_type == '3':
            # 断言
            text = self.driver.switch_to.alert.text
            self.assertIn('用户名不能为空', text)
            self.assertIn('登录密码不能为空', text)
        elif assert_type == '4':
            # 断言
            text = self.driver.switch_to.alert.text
            self.assertIn('登录密码不能为空', text)
        elif assert_type == '5':
            # 断言
            text = self.driver.switch_to.alert.text
            self.assertIn('用户名不能为空', text)
